import type { Router } from 'vue-router'
import { initDynamicRouter } from '@/routers/utils/initDynamic'
import { LOGIN_URL, ROUTER_WHITE_LIST } from '@/constants/global'
import { clearCookies, isLoginFn } from '@/utils'

export function setupRouterGuard(router: Router) {
  initDynamicRouter(router)
  /* 全局前置守卫  */
  router.beforeEach(async (to, from) => {
    console.log('[ from ]-10', from)
    // 2.动态设置标题
    const appTitle = import.meta.env.VITE_APP_TITLE
    useTitle(to.meta.title as string, { titleTemplate: `%s | ${appTitle}` })
    // 4.判断访问页面 白名单直接放行
    // if (ROUTER_WHITE_LIST.includes(to.path))
    //   return true
    // // 3. 访问登陆页， 并且重置路由
    // const isToLogin = to.path.toLocaleLowerCase() === LOGIN_URL
    // if (isToLogin) {
    //   if (from.path === LOGIN_URL)
    //     return false

    //   clearCookies()
    //   return true
    // }
    // // 5.已登录：判断是否有 session，没有重定向到 login 页面
    // if (!isLoginFn()) {
    //   /** 未登录： */
    //   if (from.path === LOGIN_URL)
    //     return false
    //   else
    //     return { name: 'login' }
    // }
    return true
  })

  /* 路由跳转错误 */
  router.onError((error) => {
    console.warn('路由错误', error.message)
  })
}
